
use proc_macro::table_name;

use derive_builder::Builder;
use proc_macro::GetFieldNames;
use proc_macro::HaveFieldType;
use proc_macro::StructToMap;
use serde::{Deserialize, Serialize};
use sqlx::FromRow;



use my_trait::MustHaveTableName;
use my_trait::MustHaveFieldType;
use my_trait::Struct2Map;

#[derive(Debug, FromRow, Serialize, Deserialize)]
#[derive(Builder, GetFieldNames, StructToMap, HaveFieldType)]
#[table_name("dms_ss")]
pub struct DmsSs {
    pub Title: Option<String>,
    pub Author: Option<String>,
    pub Keywords: Option<String>,
    pub Abstract: Option<String>,
    pub Publisher: Option<String>,
    pub Language: Option<String>,
    pub ISBN: Option<String>,
    pub Date: Option<String>,
    pub Year: Option<String>,
    pub Issue: Option<String>,
    pub Volume: Option<String>,
    pub Subject: Option<String>,
    pub Category: Option<String>,
    pub Summary: Option<String>,
    pub Product: Option<String>,
    pub Journal_Title: Option<String>,
    pub Article_Type: Option<String>,
    pub dbSource: Option<String>,
    pub dataType: Option<String>,
    pub DOI: Option<String>,
    pub AID: Option<String>,
    pub PubCode: Option<String>,
    pub Section: Option<String>,
    pub Region: Option<String>,
    pub SSUrl: Option<String>,
    pub Pages: Option<String>,
    pub File_Size: Option<String>,
    pub Has_Files: Option<String>,
    pub File_Name: Option<String>,
    pub File_Path: Option<String>,
    pub UpdateTime: Option<String>,
    pub md5: Option<String>,
    pub xxzx_id: i64,
}
